#define _CRT_SECURE_NO_WARNINGS 1


#include <stdlib.h>
//typedef struct Node
//{
//    int val;
//    int index;
//}map;
//int cmp(const void* e1, const void* e2)
//{
//    return ((map*)e2)->val - ((map*)e1)->val;
//}
//int cmmp(const void* e1, const void* e2)
//{
//    return ((map*)e2)->index - ((map*)e2)->index;
//}
//int main()
//{
//    int nums[] = { 2,1,3,3 };
//    int numsSize = sizeof(nums) / sizeof(nums[0]);           
//    int k = 2;
//    map* valRet = (map*)calloc(numsSize, sizeof(map));
//
//    for (int i = 0; i < numsSize; ++i)
//    {
//        valRet[i].val = nums[i];
//        valRet[i].index = i;
//    }
//    qsort(valRet, numsSize, sizeof(map), cmp);
//    map* indexRet = (map*)calloc(k, sizeof(map));
//    qsort(valRet, numsSize, sizeof(map), cmmp);
//    for (int i = 0; i < k; ++i)
//    {
//        indexRet[i].index = valRet[i].index;
//    }
//
//}


#include <stdio.h>
//int main()
//{
//	FILE* pf = fopen("text.txt", "r");
//	if (pf == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//	printf("%d\n", ftell(pf));
//
//	fseek(pf, 2, SEEK_SET);
//	
//	printf("%c\n", fgetc(pf));
//	printf("%d\n", ftell(pf));
//
//	fseek(pf, 2, SEEK_CUR);
//	
//	printf("%c\n", fgetc(pf));
//
//	printf("%d\n", ftell(pf));
//
//	return 0;
//}

//
//
//int main()
//{
//	int arr[5] = { 1,2,3,4,5 };
//	FILE* pf = fopen("text.txt", "wb");
//	if (!pf)
//	{
//		perror("open fail");
//		return 1;
//	}
//	fwrite(arr, 4, 5, pf);
//	fclose(pf);
//	pf = fopen("text.txt", "rb");
//	if (!pf)
//	{											    
//		perror("open fail");
//		return 1;
//	}
//	int brr[5];
//	size_t ret = fread(brr, 4, 5, pf);
//	if (ret == 5)
//	{
//		for(int i = 0; i < 5; ++i)
//		{
//			printf("%d ", brr[i]);
//		}
//	}
//	else
//	{
//		if (feof(pf))
//		{
//			puts("end of file");
//		}
//		else if (ferror(pf))
//		{
//			perror("reading error");
//		}
//	}
//	fclose(pf);
//	pf = NULL;
//	return 0;
//}